{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Exercise with Capital Bikeshare data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Introduction\n",
    "\n",
    "- Capital Bikeshare dataset from Kaggle: [data](https://github.com/justmarkham/DAT8/blob/master/data/bikeshare.csv), [data dictionary](https://www.kaggle.com/c/bike-sharing-demand/data)\n",
    "- Each observation represents the bikeshare rentals initiated during a given hour of a given day"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "from sklearn.cross_validation import cross_val_score\n",
    "from sklearn.linear_model import LinearRegression\n",
    "from sklearn.tree import DecisionTreeRegressor, export_graphviz"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# read the data and set \"datetime\" as the index\n",
    "url = 'https://raw.githubusercontent.com/justmarkham/DAT8/master/data/bikeshare.csv'\n",
    "bikes = pd.read_csv(url, index_col='datetime', parse_dates=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# \"count\" is a method, so it's best to rename that column\n",
    "bikes.rename(columns={'count':'total'}, inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# create \"hour\" as its own feature\n",
    "bikes['hour'] = bikes.index.hour"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>season</th>\n",
       "      <th>holiday</th>\n",
       "      <th>workingday</th>\n",
       "      <th>weather</th>\n",
       "      <th>temp</th>\n",
       "      <th>atemp</th>\n",
       "      <th>humidity</th>\n",
       "      <th>windspeed</th>\n",
       "      <th>casual</th>\n",
       "      <th>registered</th>\n",
       "      <th>total</th>\n",
       "      <th>hour</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>datetime</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2011-01-01 00:00:00</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>9.84</td>\n",
       "      <td>14.395</td>\n",
       "      <td>81</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>13</td>\n",
       "      <td>16</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-01-01 01:00:00</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>9.02</td>\n",
       "      <td>13.635</td>\n",
       "      <td>80</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>32</td>\n",
       "      <td>40</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-01-01 02:00:00</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>9.02</td>\n",
       "      <td>13.635</td>\n",
       "      <td>80</td>\n",
       "      <td>0</td>\n",
       "      <td>5</td>\n",
       "      <td>27</td>\n",
       "      <td>32</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-01-01 03:00:00</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>9.84</td>\n",
       "      <td>14.395</td>\n",
       "      <td>75</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>10</td>\n",
       "      <td>13</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-01-01 04:00:00</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>9.84</td>\n",
       "      <td>14.395</td>\n",
       "      <td>75</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     season  holiday  workingday  weather  temp   atemp  \\\n",
       "datetime                                                                  \n",
       "2011-01-01 00:00:00       1        0           0        1  9.84  14.395   \n",
       "2011-01-01 01:00:00       1        0           0        1  9.02  13.635   \n",
       "2011-01-01 02:00:00       1        0           0        1  9.02  13.635   \n",
       "2011-01-01 03:00:00       1        0           0        1  9.84  14.395   \n",
       "2011-01-01 04:00:00       1        0           0        1  9.84  14.395   \n",
       "\n",
       "                     humidity  windspeed  casual  registered  total  hour  \n",
       "datetime                                                                   \n",
       "2011-01-01 00:00:00        81          0       3          13     16     0  \n",
       "2011-01-01 01:00:00        80          0       8          32     40     1  \n",
       "2011-01-01 02:00:00        80          0       5          27     32     2  \n",
       "2011-01-01 03:00:00        75          0       3          10     13     3  \n",
       "2011-01-01 04:00:00        75          0       0           1      1     4  "
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bikes.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>season</th>\n",
       "      <th>holiday</th>\n",
       "      <th>workingday</th>\n",
       "      <th>weather</th>\n",
       "      <th>temp</th>\n",
       "      <th>atemp</th>\n",
       "      <th>humidity</th>\n",
       "      <th>windspeed</th>\n",
       "      <th>casual</th>\n",
       "      <th>registered</th>\n",
       "      <th>total</th>\n",
       "      <th>hour</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>datetime</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2012-12-19 19:00:00</th>\n",
       "      <td>4</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>15.58</td>\n",
       "      <td>19.695</td>\n",
       "      <td>50</td>\n",
       "      <td>26.0027</td>\n",
       "      <td>7</td>\n",
       "      <td>329</td>\n",
       "      <td>336</td>\n",
       "      <td>19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-12-19 20:00:00</th>\n",
       "      <td>4</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>14.76</td>\n",
       "      <td>17.425</td>\n",
       "      <td>57</td>\n",
       "      <td>15.0013</td>\n",
       "      <td>10</td>\n",
       "      <td>231</td>\n",
       "      <td>241</td>\n",
       "      <td>20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-12-19 21:00:00</th>\n",
       "      <td>4</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>13.94</td>\n",
       "      <td>15.910</td>\n",
       "      <td>61</td>\n",
       "      <td>15.0013</td>\n",
       "      <td>4</td>\n",
       "      <td>164</td>\n",
       "      <td>168</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-12-19 22:00:00</th>\n",
       "      <td>4</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>13.94</td>\n",
       "      <td>17.425</td>\n",
       "      <td>61</td>\n",
       "      <td>6.0032</td>\n",
       "      <td>12</td>\n",
       "      <td>117</td>\n",
       "      <td>129</td>\n",
       "      <td>22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-12-19 23:00:00</th>\n",
       "      <td>4</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>13.12</td>\n",
       "      <td>16.665</td>\n",
       "      <td>66</td>\n",
       "      <td>8.9981</td>\n",
       "      <td>4</td>\n",
       "      <td>84</td>\n",
       "      <td>88</td>\n",
       "      <td>23</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     season  holiday  workingday  weather   temp   atemp  \\\n",
       "datetime                                                                   \n",
       "2012-12-19 19:00:00       4        0           1        1  15.58  19.695   \n",
       "2012-12-19 20:00:00       4        0           1        1  14.76  17.425   \n",
       "2012-12-19 21:00:00       4        0           1        1  13.94  15.910   \n",
       "2012-12-19 22:00:00       4        0           1        1  13.94  17.425   \n",
       "2012-12-19 23:00:00       4        0           1        1  13.12  16.665   \n",
       "\n",
       "                     humidity  windspeed  casual  registered  total  hour  \n",
       "datetime                                                                   \n",
       "2012-12-19 19:00:00        50    26.0027       7         329    336    19  \n",
       "2012-12-19 20:00:00        57    15.0013      10         231    241    20  \n",
       "2012-12-19 21:00:00        61    15.0013       4         164    168    21  \n",
       "2012-12-19 22:00:00        61     6.0032      12         117    129    22  \n",
       "2012-12-19 23:00:00        66     8.9981       4          84     88    23  "
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bikes.tail()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- **hour** ranges from 0 (midnight) through 23 (11pm)\n",
    "- **workingday** is either 0 (weekend or holiday) or 1 (non-holiday weekday)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Task 1\n",
    "\n",
    "Run these two `groupby` statements and figure out what they tell you about the data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "workingday\n",
       "0    188.506621\n",
       "1    193.011873\n",
       "Name: total, dtype: float64"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# mean rentals for each value of \"workingday\"\n",
    "bikes.groupby('workingday').total.mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "hour\n",
       "0      55.138462\n",
       "1      33.859031\n",
       "2      22.899554\n",
       "3      11.757506\n",
       "4       6.407240\n",
       "5      19.767699\n",
       "6      76.259341\n",
       "7     213.116484\n",
       "8     362.769231\n",
       "9     221.780220\n",
       "10    175.092308\n",
       "11    210.674725\n",
       "12    256.508772\n",
       "13    257.787281\n",
       "14    243.442982\n",
       "15    254.298246\n",
       "16    316.372807\n",
       "17    468.765351\n",
       "18    430.859649\n",
       "19    315.278509\n",
       "20    228.517544\n",
       "21    173.370614\n",
       "22    133.576754\n",
       "23     89.508772\n",
       "Name: total, dtype: float64"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# mean rentals for each value of \"hour\"\n",
    "bikes.groupby('hour').total.mean()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Task 2\n",
    "\n",
    "Run this plotting code, and make sure you understand the output. Then, separate this plot into two separate plots conditioned on \"workingday\". (In other words, one plot should display the hourly trend for \"workingday=0\", and the other should display the hourly trend for \"workingday=1\".)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0xca01d30>"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nQnAHceQkXH8AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xca0ea90>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# mean rentals for each value of \"hour\"\n",
    "bikes.groupby('hour').total.mean().plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0xca0e208>"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n/wekexpAtOt7egAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xcb66208>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# hourly rental trend for \"workingday=0\"\n",
    "bikes[bikes.workingday==0].groupby('hour').total.mean().plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0xca3d160>"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xcb39e48>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# hourly rental trend for \"workingday=1\"\n",
    "bikes[bikes.workingday==1].groupby('hour').total.mean().plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0xca45160>"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXMAAAEPCAYAAACwWiQoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xd4FFX3wPHvTYGQBAglkITeIgm9F1EDAiKotBcpgjTR\nF7D/LKAiKDZEfVUQUUHFAogiKipKM6KgEjok9ColhYSWBin398dsIEDKJtnd2eyez/Psw2R3Zu7J\nup7cvXPnXKW1RgghROnmYXYAQgghSk6SuRBCuABJ5kII4QIkmQshhAuQZC6EEC5AkrkQQrgAq5K5\nUipAKfWNUmq3UipGKdVBKVVZKbVKKbVPKbVSKRWQa//JSqn9Sqk9Sqme9gtfCCEEWN8zfwf4WWsd\nBjQH9gCTgFVa61BgjeVnlFLhwGAgHOgFzFFKyTcAIYSwo0KTrFKqInCT1vpjAK11ptb6HHAXsMCy\n2wKgn2W7L7BIa52htT4CHADa2zpwIYQQV1jTY64HJCilPlFKbVFKfaSU8gOqa63jLPvEAdUt2yHA\n8VzHHwdq2CxiIYQQ17EmmXsBrYE5WuvWQAqWIZUc2qgJUFBdAKkZIIQQduRlxT7HgeNa6yjLz98A\nk4FYpVSQ1jpWKRUMxFtePwHUynV8TctzlymlJLkLIUQxaK1VXs8X2jPXWscC/yqlQi1PdQeigeXA\nSMtzI4HvLNs/AEOUUmWUUvWARsDGPM4rjwIeU6dONT0GZ3/IeyTvj7u9RwWxpmcO8BDwpVKqDHAQ\nGA14AkuUUmOBI8DdliQdo5RaAsQAmcAEXVgUQgghSsSqZK613g60y+Ol7vns/wrwSgniEkIIUQQy\n/9tJRUREmB2C05P3qGDy/hTOld4jZcYIiFJKRl6EEKKIlFLofC6AWjtm7hBK5Rmj25I/eEIIazlV\nMgdJYDnkD5sQoihkzFwIIVyAJHMhhHABksyFEMIFuE0yr1u3LklJSdc9f+ONN9q9DSGEsDe3SOZZ\nWVn5XlBcv369zdqRi5ZCCLM4fTKfOXMms2bNAuCxxx7j1ltvBWDt2rUMHz6cRYsW0bx5c5o1a8ak\nSVeKOfr7+/PEE0/QsmVL/v7778vPp6WlcfvttzN//vzL+wFERkYSERHBoEGDCAsLY/jw4ZeP+fnn\nnwkLC6Nt27Y8/PDD3HnnnQAkJibSs2dPmjZtyrhx466aidO/f3/atm1L06ZN+eijjwD4+OOPeeyx\nxy7v89FHH/H444/b9P0SQrgpk4rF6Lzk9fzff/+tBw0apLXWukuXLrpDhw46IyNDT5s2Tb/wwgu6\ndu3a+vTp0zozM1N369ZNf/fdd1prrZVS+uuvv758nrp16+ojR47o7t27688///zy8/7+/lprrX/7\n7TddsWJFfeLECZ2dna07deqk169fr9PS0nStWrX0kSNHtNZaDx06VN95551aa60feughPX36dK21\n1j/99JNWSunExESttdZJSUlaa61TU1N106ZNdVJSkk5OTtYNGjTQmZmZWmutO3furHft2mX1eyGE\ncG+WvJBnXnX6nnnr1q3ZvHkzFy5cwMfHh06dOrFp0yb+/PNPAgIC6Nq1K1WqVMHT05N77rmHdevW\nAeDp6cnAgQMvn0drTd++fRkzZsxVve7c2rdvT0hICEopWrZsyeHDh9mzZw/169enTp06AAwdOvRy\nD/yPP/64fK7evXtTqVKly+d65513aNmyJZ06deLff/9l//79+Pn50a1bN5YvX86ePXvIyMigSZMm\ndnnfhBDuxemTube3N/Xq1ePTTz+lc+fOdOnShbVr13LgwAHq1q171dCG1vryuLWPj89VY9hKKbp0\n6cKKFSvybats2bKXtz09PcnMzLxuHDx3e3n9DMaQzZo1a/j777/Ztm0brVq1Ij09HYD77ruPTz75\nhE8//ZQxY8YU4Z0QQoj8OX0yB7jpppt44403uOWWW7jpppuYO3curVu3pn379vz+++8kJiaSlZXF\n4sWLueWWW/I9z4svvkilSpWYOHGiVe0qpbjhhhs4dOgQR48eBeCrr766nOBvvvlmFi5cCMCKFSs4\nc+YMAOfPn6dSpUr4+PiwZ8+eq8bs27dvz/Hjx1m4cCFDhw4t1vshhBDXKjXJPDY2lk6dOlGtWjXK\nlSvHTTfdRFBQEK+99hpdu3alZcuWtG3b9vLFyWt71Dk/v/POO6SlpV2+WHpt7/1aPj4+zJkzh169\netG2bVsqVKhAhQoVAJg6dSrr1q2jadOmLFu27PJQTK9evcjMzCQ8PJzJkyfTqVOnq855991306VL\nFypWrGijd0gI4e6cqmqipSKYw+MpTEpKCn5+fgBMnDiR0NBQHnnkkWKf78477+Txxx+na9eu+e7j\nrO+FEMI8BVVNLBU9c7N99NFHtGrViiZNmnD+/HkeeOCBYp3n7Nmz3HDDDfj6+haYyIUQoqikZ+6k\n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\nAiSZCyGEC/h/gOU6docQoMkAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x18e9eeb8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# combine the two plots\n",
    "bikes.groupby(['hour', 'workingday']).total.mean().unstack().plot()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Task 3\n",
    "\n",
    "Fit a linear regression model to the entire dataset, using \"total\" as the response and \"hour\" and \"workingday\" as the only features. Then, print the coefficients and interpret them. What are the limitations of linear regression in this instance?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# create X and y\n",
    "feature_cols = ['hour', 'workingday']\n",
    "X = bikes[feature_cols]\n",
    "y = bikes.total"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 10.49206282,   4.07248627])"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# fit a linear regression model and print coefficients\n",
    "linreg = LinearRegression()\n",
    "linreg.fit(X, y)\n",
    "linreg.coef_"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Task 4\n",
    "\n",
    "Use 10-fold cross-validation to calculate the RMSE for the linear regression model."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# save the 10 MSE scores output by cross_val_score\n",
    "scores = cross_val_score(linreg, X, y, cv=10, scoring='mean_squared_error')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "165.22328668912968"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# convert MSE to RMSE, and then calculate the mean of the 10 RMSE scores\n",
    "np.mean(np.sqrt(-scores))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Task 5\n",
    "\n",
    "Use 10-fold cross-validation to evaluate a decision tree model with those same features (fit to any \"max_depth\" you choose)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "107.64196789476493"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# evaluate a decision tree model with \"max_depth=7\"\n",
    "treereg = DecisionTreeRegressor(max_depth=7, random_state=1)\n",
    "scores = cross_val_score(treereg, X, y, cv=10, scoring='mean_squared_error')\n",
    "np.mean(np.sqrt(-scores))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Task 6\n",
    "\n",
    "Fit a decision tree model to the entire dataset using \"max_depth=3\", and create a tree diagram using Graphviz. Then, figure out what each leaf represents. What did the decision tree learn that a linear regression model could not learn?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DecisionTreeRegressor(criterion='mse', max_depth=3, max_features=None,\n",
       "           max_leaf_nodes=None, min_samples_leaf=1, min_samples_split=2,\n",
       "           min_weight_fraction_leaf=0.0, random_state=1, splitter='best')"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# fit a decision tree model with \"max_depth=3\"\n",
    "treereg = DecisionTreeRegressor(max_depth=3, random_state=1)\n",
    "treereg.fit(X, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# create a Graphviz file\n",
    "export_graphviz(treereg, out_file='tree_bikeshare.dot', feature_names=feature_cols)\n",
    "\n",
    "# At the command line, run this to convert to PNG:\n",
    "#   dot -Tpng tree_bikeshare.dot -o tree_bikeshare.png"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![Tree for bikeshare data](images/tree_bikeshare.png)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
